Implemented Collisions
Binary Collisions
These binary interactions have currently been implemented:
Elastic collision of hard spheres
SphSphSphSph
- functions:
dsigmadt_SphSphSphSph
sigma_SphSphSphSph
- functions:
Photon pair production from electron positron annihilation
ElePosPhoPho
- functions:
dsigmadt_ElePosPhoPho
sigma_ElePosPhoPho
- functions:
Electron-positron pair production from photon pair annihilation
PhoPhoElePos
- functions:
dsigmadt_PhoPhoElePos
sigma_PhoPhoElePos
- functions:
Electron(or Positron)-Photon scattering (Compton Scattering)
ElePhoElePho
- functions:
dsigmadt_ElePhoElePho
sigma_ElePhoElePho
- functions:
Emission Interactions
These emissive interactions have currently been implemented:
- Synchrotron (cyclotron) emission
- functions:
SyncKernel
- functions:
Adding New Binary Collisions
Users may add their own binary interaction cross sections to the /src/commom/DifferentialCrossSectionFunctions.jl
file of DiplodocusCollisions.jl
. Functions should be named in the following format: "sigma_name1name2name3name4"
and "dsigmadt_name1name2name3name4"
where the names are three letter abbreviations of the particles involved (see Particles, Grids and Units). The named pairs name1name2
and name3name4
should be in alphabetical order. Both the total cross section and differential cross sections must be provided for a single interaction.
All cross sections are to be defined in terms of the Mandelstram variables Float64
precision), each Mandelstram variable in the cross sections should be split into two components:
s=sSmol+sBig
wheret=tSmol+tBig
whereu=uSmol+uBig
where
The "Big" part typically cancels with terms in the cross sections, leading to better accuracy. Therefore the function should defined as follows:
function sigma_name1name2name3name4(sSmol::Float64,sBig::Float64,tSmol::Float64,tBig::Float64,uSmol::Float64,uBig::Float64)
...
end
function dsigmadt_name1name2name3name4(sSmol::Float64,sBig::Float64,tSmol::Float64,tBig::Float64,uSmol::Float64,uBig::Float64)
...
end
where all of sSmol
, sBig
, tSmol
, tBig
, uSmol
, and uBig
must be included in the function definition irrespective of if they actually appear in the cross section. It is also important to define a normalisation for the cross sections to avoid emission and absorption terms becoming small compared to the Float64
minimum.
WARNING
Total cross sections may typically be defined/derived in textbooks and other sources to include division by
Internal Collision Functions
DiplodocusCollisions.sigma_SphSphSphSph Function
sigma_SphSphSphSph(sSmol,sBig)
returns the total cross section for the binary interaction of hard spheres with normalised masses (wrt electron mass)
Arguments
sSmol::Float64
: s - sBigsBig::Float64
: (m1+m2)^2
DiplodocusCollisions.dsigmadt_SphSphSphSph Function
dsigmadt_SphSphSphSph(sSmol,sBig,tSmol,tBig,uSmol,uBig)
returns the differential cross section for the binary interaction of hard spheres with normalised masses
Arguments
sSmol::Float64
:sBig::Float64
:tSmol::Float64
:tBig::Float64
:uSmol::Float64
:uBig::Float64
:
DiplodocusCollisions.sigma_ElePosPhoPho Function
sigma_ElePosPhoPho(sSmol,sBig)
returns the total cross section for electron positron annihilation to two photons. Berestetskii 1982 (88.6). Masses and momenta are normalised by the rest mass of the electron
Arguments
sSmol::Float64
:sBig::Float64
:
DiplodocusCollisions.dsigmadt_ElePosPhoPho Function
dsigmadt_ElePosPhoPho(sSmol,sBig,tSmol,tBig,uSmol,uBig)
returns the differential cross section for electron positron annihilation to two photons. Berestetskii 1982 (88.4). Masses and momenta are normalised by the rest mass of the electron
Arguments
sSmol::Float64
:sBig::Float64
:tSmol::Float64
:tBig::Float64
:uSmol::Float64
:uBig::Float64
:
DiplodocusCollisions.sigma_PhoPhoElePos Function
sigma_PhoPhoElePos(sSmol,sBig)
returns the total cross section for photon-photon annihilation to electron-positron pair. Masses and momenta are normalised by the rest mass of the electron
Arguments
sSmol::Float64
:sBig::Float64
:
DiplodocusCollisions.dsigmadt_PhoPhoElePos Function
dsigmadt_PhoPhoElePos(sSmol,sBig,tSmol,tBig,uSmol,uBig)
returns the differential cross section for photon-photon annihilation to electron-positron pair. (Inverse proceess of electron positron annihilation to two photons). Masses and momenta are normalised by the rest mass of the electron
Arguments
sSmol::Float64
:sBig::Float64
:tSmol::Float64
:tBig::Float64
:uSmol::Float64
:uBig::Float64
:
DiplodocusCollisions.sigma_ElePhoElePho Function
sigma_ElePhoElePho(sSmol,sBig)
returns the total cross section for electron-photon (Compton) scattering. Berestetskii 1982 (86.16). Masses and momenta are normalised by the rest mass of the electron
Arguments
sSmol::Float64
:sBig::Float64
:
DiplodocusCollisions.dsigmadt_ElePhoElePho Function
dsigmadt_ElePhoElePho(sSmol,sBig,tSmol,tBig,uSmol,uBig)
returns the differential cross section for electron-photon scattering (Compton) scattering. Berestetskii 1982 (86.6). Masses and momenta are normalised by the rest mass of the electron
Arguments
sSmol::Float64
:sBig::Float64
:tSmol::Float64
:tBig::Float64
:uSmol::Float64
:uBig::Float64
:
DiplodocusCollisions.SyncKernel Function
SyncKernel(p3v,p1v,m1,z1,B)
Returns the emission rate for a single photon